Method For Executing User Navigational Events Triggered Through Geolocational Data Describing Zones Of Influence

ABSTRACT

A method for executing user navigational events triggered through geolocational data describing zones of influence is provided. Data is stored in a cartridge script loadable into a user device. Zones of influence are defined by describing by points of static geolocational data. User navigational events are defined and each user event is associated with a zone of influence. A trigger condition is specified for each user event based on the static data for the associated zone of influence. A scenario is executed by triggering the user events stored on the cartridge script through movement of the user device. A location of the user device is continuously self-identified based on dynamic geolocational data determined in response to the movement. A correlation between the dynamic data and the static data for the zones of influence is determined. The user event associated with a trigger condition is locally triggered based on the correlation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a division of U.S. patent application Ser.No. 10/774,301, filed Feb. 6, 2004, pending, which is a continuation ofU.S. Pat. No. 6,691,032, issued Feb. 10, 2004, the priority filing datesof which are claimed and the disclosures of which are incorporated byreference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialsubject to copyright protection. The copyright owner has no objection tothe facsimile reproduction by anyone of the patent document or thepatent disclosure as appearing in the Patent and Trademark Office patentfile or records, but otherwise reserves all copyright rights whatsoever.

FIELD

The present invention relates in general to user navigational eventsand, in particular, to a method for executing user navigational eventstriggered through geolocational data describing zones of influence.

BACKGROUND

The Global Positioning System (GPS) is a satellite navigation systemconsisting of 24 satellites that orbit the Earth every 12 hours. GPSsignals received from the satellites are processed by GPS receivers todetermine location in latitude and longitude. Nonmilitary GPS receiversare capable of determining a location with a six-meter range ofaccuracy.

GPS receivers are passive devices that provide relative locational dataonly. The locational data must be combined with maps, charts and othernavigational aids to bring meaning to the latitude and longitudecoordinates. Thus, GPS navigation information is most useful when usedin combination with preferably automated and wireless technologies.

Accordingly, many portable and wireless computational devices, such ascellular telephones, personal data assistants, pagers and wirelesselectronic mail (email) clients incorporate GPS receivers, to enhanceand complement the locational information provided. For instance,personal data assistants having integrated GPS receivers can providenavigational information through a portable database storing points ofinterest. Moreover, the processing capabilities of many of theseportable devices support downloadable cartridges for utilizing the GPSreceiver-provided information for customized applications.

One popular use of GPS information is a modified version of a treasurehunting game, known as geocaching. During a geocaching game, usersequipped with a GPS receiver navigate from point to point using latitudeand longitude values obtained by correctly solving clues receivedthroughout the hunt. Players proceed from a starting point until thecache, that is, treasure, is found. Variations of geocaching includeincorporating wireless computing technology to enable interactionsdirectly between competing players and managed gameplay, where eachplayer is tracked and the clues are customized based on individualprogress. Other uses of GPS information are known in the art.

U.S. Pat. No. 6,320,495 discloses a treasure hunting game utilizingGPS-equipped wireless computing devices. Players are given clues ordirections to proceed along one of several predetermined treasurehunting routes based on their location, as determined by a GPS receiver.Each player's position, along with the treasure hunt route, iscalculated by the GPS receiver and transmitted to a software program bya wireless computing device. The first player to arrive at the treasurewins the game. However, the clues or messages provided to each playermust be first determined by a centralized software program and are notdynamically triggered based on user-definable conditions.

U.S. Pat. No. 5,923,100 discloses an automobile navigation systemutilizing GPS geolocational data. The vehicle location and travel timeare transmitted to a central database via a wireless computing deviceand used to plan travel times and determine optimal travel routes. Asnecessary, the route is revised to adjust for deviations in traveldirection and time. However, user-definable events cannot be programmedinto the route planning process.

Prior art non-GPS based informational systems include infrared portablenarrators. These devices store a recorded script associated with pointsof interest within an attraction, such as an art museum or zoo. Thenarrators receive infrared input signals from static display positionsalong the route, which trigger the playback of the narration associatedwith the display. However, these devices are passive and user-definableevents cannot be programmed into the recorded script.

Prior art non-GPS based informational systems also include wirelessmessaging systems, such as the Cooltown technology disclosed inhttp://www.internex.org/hp_world_news/hpw203/03newshtml, the disclosureof which is incorporated by reference. Mid-air messages are provided bycombining GPS technology with infrared or Bluetooth-capable wirelessdevices. An information broadcast is triggered whenever a user enters ageographically described location. However, the Cooltown technologyoperates only within discrete areas and user-definable events cannot beprogrammed into the mid-air messaging system.

Therefore, there is a need for an approach to generating user-definableevents triggered through geolocational data describing zones ofinfluence, as well as temporal and independent conditions.

There is a further need for a framework for building user-definableevents triggerable through geolocational data describing zones ofinfluence as well as temporal and independent conditions.

There is a further need for an approach to defining locational, temporaland independent event triggers used in a combination of GPS and wirelesscomputational technologies.

SUMMARY

The present invention provides a system and method for producing andprocessing zones of influence described through locational, temporal andindependent conditions. Preferably, the user is equipped with a wirelesscomputing device having a GPS receiver and timer. A plurality of zonesof influence is defined through geolocational data, preferably expressedin latitude and longitude. User-definable events are associated with thezones of influence. The events are triggered as a user transitionsbetween, within and around the zones of influence. Timed events relativeto an initial starting time and independent events can also be defined.The timed and independent events are triggered as the time limits expireand independent conditions are met.

An embodiment provides a method for executing user events on a mobileuser device. Data in a cartridge script loaded into a memory of a mobileuser device is accessed. The data includes one or more zones ofinfluence, which each describe a plurality of points of staticgeolocational data, and one or more user events, which are eachassociated with at least one zone of influence. A scenario is executedby triggering the user events stored on the cartridge script throughmovement of the mobile user device. A location is dynamically determinedin response to the movement by continuous self-identification. Apositional overlap between the location and the static geolocationaldata for one or more of the zones of influence is determined. The userevent associated with the zones of influence is locally triggered basedon the positional overlap.

A further embodiment provides a method for executing user navigationalevents triggered through geolocational data describing zones ofinfluence. Data is stored in a cartridge script loadable into a userdevice. One or more zones of influence is defined into the cartridgescript by describing by a plurality of points of static geolocationaldata. One or more user navigational events is defined into the cartridgescript and each user navigational event is associated with at least onezone of influence. A trigger condition is specified for each usernavigational event based on the static geolocational data for theassociated zone of influence. A scenario is executed by triggering theuser navigational events stored on the cartridge script through movementof the user device. A location of the user device is continuouslyself-identified based on dynamic geolocational data determined inresponse to the movement. A correlation between the dynamicgeolocational data and the static geolocational data for one or more ofthe zones of influence is determined. The user navigational eventassociated with the trigger condition of the zones of influence islocally triggered based on the correlation.

A further embodiment provides a method for executing zones of influencesthat describe geolocational data triggered through user navigationalevents. Data is stored in a cartridge script loadable into a userdevice. One or more user navigational events is defined into thecartridge script. One or more zones of influence is defined into thecartridge script by describing by a plurality of points of staticgeolocational data and each zone of influence is associated with atleast one user navigational event. A trigger condition is specified foreach zone of influence for the associated user navigational event. Ascenario is executed by triggering the zones of influence stored on thecartridge script through user events. Event satisfaction of one or moreof the user navigational events is determined. Each zone of influenceassociated with the user navigational events is locally triggered basedon the event satisfaction.

Still other embodiments of the present invention will become readilyapparent to those skilled in the art from the following detaileddescription, wherein are described embodiments of the invention by wayof illustrating the best mode contemplated for carrying out theinvention. As will be realized, the invention is capable of other anddifferent embodiments and its several details are capable ofmodifications in various obvious respects, all without departing fromthe spirit and the scope of the present invention. Accordingly, thedrawings and detailed description are to be regarded as illustrative innature and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram showing a system for executing user-definableevents triggered through geolocational data describing zones ofinfluence, in accordance with the present invention.

FIG. 1B is a block diagram showing a further embodiment of the system ofFIG. 1A.

FIGS. 2A and 2B are template drawings showing, by way of example,arbitrary two-dimensional vector-based zones of influence.

FIGS. 3A and 3B are template drawings showing, by way of example,arbitrary two-dimensional point-radius zones of influence.

FIG. 4 is a template drawing showing, by way of example, an arbitrarythree-dimensional vector-based zone of influence.

FIGS. 5A and 5B are template drawings showing, by way of example,arbitrary three-dimensional point-radius zones of influence.

FIG. 6 is a map diagram showing, by way of example, interrelated zonesof influence.

FIG. 7 is a map diagram showing, by way of further example, interrelatedzones of influence.

FIG. 8 is a block diagram showing the functional software components ofa production system for use with the system of FIG. 1.

FIG. 9 is a data structure diagram showing the cartridge templateutilized by the toolkit of the system of FIG. 8.

FIG. 10 is a flow diagram showing a method of executing user-definableevents triggered through geolocational data describing zones ofinfluence, in accordance with the present invention.

FIG. 11 is a flow diagram showing a routine for checking and updatinguser status and history for use in the method of FIG. 10.

FIG. 12 is a flow diagram showing a routine for checking and verifying alocation status for use in the method of FIG. 10.

FIG. 13 is a flow diagram showing a routine for checking and verifying acartridge status and history for use in the method of FIG. 10.

FIG. 14 is a flow diagram showing a routine for checking queueconditions for use in the method of FIG. 10.

FIG. 15 is a flow diagram showing a routine for executing queued actionsfor use in the method of FIG. 10.

FIG. 16 is a flow diagram showing a routine for performing a timed eventfor use in the routine of FIG. 14.

FIG. 17 is a flow diagram showing a routine for performing a queueaction and update for use in the routines of FIGS. 14, 16, 18 and 19.

FIG. 18 is a flow diagram showing a routine for performing auser-initiated event for use in the routines of FIG. 14.

FIG. 19 is a flow diagram showing a routine for performing a proximityevent for use in the routine of FIG. 14.

FIG. 20 is a flow diagram showing a routine for defining globalcartridge settings for use in the method of FIG. 10.

FIG. 21 is a flow diagram showing a routine for defining zones ofinfluence for use in the routine of FIG. 20.

FIG. 22 is a flow diagram showing a routine for defining items for usein the routine of FIG. 20.

FIG. 23 is a flow diagram showing a routine for defining events for usein the routine of FIG. 20.

FIG. 24 is a flow diagram showing a routine for defining non-playercharacters for use in the routine of FIG. 20.

FIG. 25 is a flow diagram showing a routine for defining cartridgeinitialization settings for use in the routine of FIG. 20.

FIG. 26 is a flow diagram showing a routine for defining zoneinformation for use in the routine of FIG. 21.

DETAILED DESCRIPTION Glossary

-   Cartridge: A cartridge is a collection of zones, items, events, and    non-player characters, which create a user experience in the    physical world using geolocational data.-   Item: An item is a virtual or physical object that can be    manipulated through cartridge events, player characters, or    non-player characters.-   Player A player character is a human player who interacts with-   Character: the physical or virtual world independent of the system    programming.-   Non-Player A non-player character is a computer-generated entity-   Character: with whom the player character can interact. Interaction    occurs programmatically through query and response behaviors.-   Events: Events are triggers which occur programmatically within a    cartridge. There are four types of events:    -   (1) Recurring Events: Time-based events which reoccur at certain        intervals, for example, a timer that announces the score every        15 minutes or a random movement of an non-player character.    -   (2) Triggered Events: Time-based events which occur after a        certain amount of time has passed, for example, a clock that        chimes every hour and half-hour. Alternatively, events which        occur at an exact time, for example, at 4:00 pm, a door opens,        then closes again at 4:15 pm.    -   (3) Conditional Triggered Events: Time-based events which occur        when certain conditions exist at certain time intervals or exact        times, for example, if a zone has been entered and the player        character has x item, the door will open at 4:00 pm.    -   (4) Non-Timed Events: Non-time-based-events which occur based on        locational or independent conditions. Locational conditions are        met when a player character enters, exits or is proximate to a        zone of influence, player character, note player character, or        object. An independent condition is met when a user-initiated,        player character, or non-player character, action occurs.

The foregoing terms are used throughout this document and, unlessindicated otherwise, are assigned the meanings presented above.

FIG. 1A is a block diagram showing a system 10 for executinguser-definable events triggered through geolocational data describingzones of influence, in accordance with the present invention. The system10 operates in accordance with a sequence of process steps, as furtherdescribed below with reference to FIG. 10.

A constellation of global positioning system (GPS) satellites 11provides geolocational data to a wireless computing device (WCD) 12. GPSsatellites 11 transmit geolocational data, including latitude,longitude, altitude, and precision. The wireless computing device 12,incorporating a GPS receiver, receives GPS signals from the GPSsatellites 11 and processes the GPS signals to determine the location ofthe wireless computing device 12. In addition, the wireless computingdevice 12 executes a cartridge (CRT) 13 to trigger user-definable eventswhen the location of the wireless computing device correlates togeolocational data describing one or more zones of influence, as furtherdescribed below beginning with reference to FIGS. 2A and 2B.

Although a wireless computing device 12 is shown, other forms andarrangements of devices could be used. At a minimum, the device must becapable of executing a cartridge 13, of determining a location fromgeolocational data, minimally consisting of latitude and longitude, andof providing some form of output responsive to a triggered event.Processing devices capable of executing a cartridge 13 include apersonal or laptop computer, either a wireless or standard personal dataassistant, a programmable cellular telephone, a programmable pager, awireless email client, a two-way radio, and a dedicated processingdevice. Locational devices capable of determining a location fromgeolocational data include a standalone GPS receiver attached via aconventional cable, OPS receiver components incorporated into aprocessing device, such as a wireless personal data assistance withinternal GPS receiver, and receiver for receiving signals from astationary GPS beacon, as described below with reference to FIG. 1B.Output devices include any of the processing devices, as well asaugmented reality devices working in conjunction with or as analternative to the processing devices to provide an output platform forpresenting triggered events. Augmented reality devices include “HeadsUp” Displays (HUDs), virtual reality eyewear, gloves, earphones andgoggles, and any other form of display device, as is known in the art.Accordingly, the term wireless compiling device 12 will apply broadly toany arrangement, configuration or combination of processing, locationaland output devices having the aforementioned capabilities and whichcould be used interchangeably herein, as would be recognized by oneskilled in the art.

The wireless computing device 12 downloads the cartridge 13 from acentralized server 14 via an internetwork 16, such as the Internet, orsimilar means for interconnecting computational devices. The centralizedserver 14 includes a Web server 17 and database manager 18. The Webserver 17 serves Web content to the wireless computing device 12 tofacilitate the retrieval of the cartridge 13 from a cartridges database15 coupled to the centralized server 14. The centralized server 14 alsoincludes a database manager 18 that accesses the cartridges database 15to retrieve the requested cartridge 13. A client 18 interconnected tothe centralized server 14 via the internetwork 16 executes a Web browser19 to display Web content received from the centralized server 14. Theclient 18 can be used to organize the cartridges database 15 and tobuild new cartridges for use in a wireless computing device 12, asfurther described below with reference to FIG. 8.

A sequence of events is stored in the cartridge 13. Events can belogically linked to one or more zones of influence, which logicallydefine an enclosed space through which the user progresses, or can bedefined as global or “world” event, independent of any zone ofinfluence. The events are triggered based on locational, temporal, andindependent conditions. In the described embodiment, a plurality ofzones of influence are described using geolocational data to define alogically enclosed space. Each non-time-based and nor-global event istriggered as the wireless computing device 12 progresses through theassociated zones of influence. The operator of the wireless computingdevice 12, referred as a player character, receives a dialog in the formof an interactive, story like experience throughout the event sequencevia the wireless computing device 12. In a further embodiment, theplayer character competes against other player characters also havingwireless computing devices 20. Additionally, the actions of othernon-player characters having wireless computing devices 21 can alsofactor into the progress of the event sequence.

Optionally, the wireless computing device 12 can also downloadinformation from a points of interest database 22 from the centralizedserver 14. The points of interest database 22 includes general andspecialized information, which can be retrieved via the wirelesscomputing device 12 in an interactive session. The points of interestinformation includes thematic data, such as bird watching sites, sushirestaurants and sponsor locations. The wireless computing device 12 candetermine and provide directions to individual points of interestthrough server-provided geolocational data.

The individual computer systems, including server 14 and client 18,include general purpose, programmed digital computing devices consistingof a central processing unit (CPU), random access memory (RAM),nonvolatile secondary storage, such as a hard drive or CD ROM drive,network or wireless interfaces, and peripheral devices, including userinterfacing means, such as a keyboard and display. Program code,including software programs, and data is loaded into the RAM forexecution and processing by the CPU and results are generated fordisplay, output, transmittal, or storage.

FIG. 1B is a block diagram showing a further embodiment 23 of the system10 of FIG. 1A. Ordinarily, GPS signals can only be received out-of-doorsby a GPS-capable receiver. In the further embodiment 23, stationary GPSbeacons transmit static geolocational and informational data on asubstantially continuous basis to provide conventional GPS signalsindoors and in areas without GPS coverage. The geolocational dataidentifies the locations of stationary and non-stationary objects. Eachbeacon includes a short-range transmitter capable of providingGPS-equivalent signals whenever a GPS receiver cannot receive regularGPS signals and is proximate to the beacon.

For instance, a vehicle 24 equipped with a GPS receiver will ordinarilyonly receive GPS signals from the constellation of GPS satellites 11.However, GPS short-range beacons can be located in a building 25, at alandmark 26, on a marine buoy 27, and on a traffic signal 28, forexample, and in other stationary or non-stationary objects to providestatic geolocational data, each short-range beacon continually transmitsgeolocational data. In addition, the short-range beacons can transmitinformational messages, which can be used in conjunction with an eventsequence.

In the described embodiment, each short-range beacon 25-28 operates as alow-powered radio frequency transmitter, such as provided in accordancewith IEEE 802.11b, “Bluetooth” or similar wireless protocols. Theshort-range beacons can be portable or mounted on a stationary objectand transmit standard GPS geolocational data, including latitude,longitude, altitude, date and time, identification, and, optionally,executable program code. Other arrangements of GPS and short-rangetransmission components are feasible, as would be recognized by oneskilled in the art.

Alternatively, each short-range beacon 25-28 transmits nonstandard GPSgeolocational data, in accordance with a wireless protocol, such as theShort Message Service (SMS). A pseudo-GPS receiver is providedcommunicatively interposed between the GPS receiver circuitry and thegeneral purpose processor. The pseudo-GPS receiver translates packetsreceived from the short-range beacon in a non-GPS compatible format andextracts and forwards the GPS signals received from the beacon.Pseudo-GPS receivers allow backward compatibility with devices limitedto receiving GPS signals only.

FIGS. 2A and 2B are template drawings showing, by way of example,arbitrary two-dimensional vector-based zones of influence. Vector-basedzones of influence are definable by specifying a starting point, vectorangle, and distance. Referring first to FIG. 2A, a square zone ofinfluence 30 is logically defined by a set of four straight linevectors. Referring next to FIG. 2B, a zone of influence 31 roughlyshaped as the letter ‘E’ is logically defined by a set of twelvestraight line vectors. Other analogous forms of defining vector-basedzones of influence, such as through polar or Cartesian coordinates, arepossible, as would be recognized by one skilled in the art.

FIGS. 3A and 3B are template drawings showing, by way of example,arbitrary two-dimensional point-radius zones of influence. Point-radiuszones of influence are definable by specifying one or more centers orfoci and associated radii. Referring first to FIG. 3A, a circular zoneof influence 32 is formed by specifying a radius projected from acenter. Referring next to FIG. 3B, an elliptical zone of influence 33 isformed specifying major and minor axes projected from a center.Alternatively, the elliptical zone of influence 33 could be specified bya pair of foci (not shown). Other forms of point-radius zones ofinfluence are possible, as would be recognized by one skilled in theart.

FIG. 4 is a template drawing showing, by way of example, an arbitrarythree-dimensional vector-based zones of influence. Three-dimensionalvector-based zones of influence are definable by specifying a startingpoint, vector angle, distance, and height. A cubical zone of influence34 is defined by a set of 12 individual vectors formed into a cube.Other forms of three-dimensional vector-based zones of influence arepossible, as would be recognized by one skilled in the art.

FIGS. 5A and 5B are template drawings showing, by way of example,arbitrary three-dimensional point-radius zones of influence.Three-dimensional point-radius zones of influence are definable byspecifying one or more foci and associated radii and a height. Referringfirst to FIG. 5A, a cylindrical zone of influence 35 is defined by atwo-dimensional circular zone of influence specified with a height.Referring next to FIG. 5B, an elliptical cylindrical zone of influence36 is defined by an elliptical zone of influence projected with a givenheight. Other forms of three-dimensional radius zones of influence arepossible, as would be recognized by one skilled in the art.

FIG. 6 is a map diagram 60 showing, by way of example, interrelatedzones of influence 61-64. Each of the zones of influence 61-64 is auser-definable vector storing geolocational data, which describe alogically enclosed space. The geolocational data specifies latitude,longitude, altitude, time, date, identification, security code, signalstrength, and similar relevant data, as would be recognized by oneskilled in the art.

A zone of influence 61-64 can have any shape and size limited, however,by the maximum accuracy of GPS technology. In the described embodiment,an accuracy of six meters is utilized. Individual zones of influence61-64 can be discrete from each other, overlapping, nested, layered, oradjoining.

As well, any zone of influence can inherit attributes and events fromother zones of influence to allow consistency across individual zones ofinfluence. For example, a count-down tinier for an activity involvingsolving a puzzle could be an inherited attribute. Inheritance isavailable between any zone of influence and does not require a priorirelationships, such as parent-child associates. Zones of influence caninherit attributes and events from another zone even when thoseattributes and events were also inherited. A zone of influence caninherit discrete attributes and events by specifying the identifiers foranother zone of influence. Alternatively, a zone of influence caninherit attributes and events from all zones of influence if noidentifiers are specified.

Unlike a grid describing geographic location, the zones of influence61-64 are flexibly defined to accommodate random event sequences, suchas might be formed by a story plotline or gameplay, as with geocaching.In contrast, geographically-based grids are strictly adjoining andcannot resolve into arbitrarily defined enclosed spaces or be arrangedin overlapping or nested configurations.

The purpose of a zone of influence 61-64 is to logically define anenclosed space used to trigger user-definable events stored in acartridge 13 on a wireless computing device 12 (shown in FIG. 1). Aseries of zones of influence 61-64 can be formed together to create astory, dialog, game, or other type of conversation, as expressed thoughthe triggered user-definable events.

Each event can be triggered through locational, temporal or independentconditions. Locational conditions are met when the wireless computingdevice 12 enters, exits or is proximate to a zone of influence, playercharacter, non-player character, or object. A temporal condition is metwhen a timer expires relative to a global, zone, non-player character,user, or object condition. An independent condition is met when auser-initiated, player character, or non-player character action occurs.User-initiated actions occur with reference to the world at large, zoneof influence, user, player character, non-player character, or object.

By way of example, a player character enters a first zone of influence61 (step 1). Upon entering the first zone of influence 61, auser-definable event is triggered to play the sound of a low, muffledgrowl accompanied by the display on the wireless computing device 12 ofthe text message, “You can hear growling sounds emanating from thesouthwest.” The player character then enters a second zone of influence62 (step 2). While within the second zone of influence 62, growlingsounds continue to play on the wireless computing device 12 and an imageof a doorway is flashed to indicate to the player character that a dooris nearby. Upon approaching the door, the player character enters athird zone of influence 63 (step 3). A new sound of louder (and morevicious) growling noises is played and a video segment showing scratchesappearing on a door is displayed. Next, the player character enters afourth zone of influence 64 (step 4). The wireless computing device 12prompts the player character with the query, “Do you wish to open thedoor?” Upon nearing the door, a further event is triggered, causing atelephone 69 to ring and playback a prerecorded message begging theplayer character to not open the door. Upon exiting the fourth zone ofinfluence 64, the player character remains within the enclosing thirdzone of influence 70 (step 5). Depending upon the actions previouslytaken by the player character, sounds of a fading growl may be played onthe wireless computing device 12, accompanied by text explaining thatthe growling sound is fading away. However, if the door was opened, theplayer character will have a predetermined time during which to exit thearea before a wild animal “eats” the player character. Finally, theplayer character exits the outermost and first zone of influence 71(step 6). If the door was opened and the player character escaped withinthe time allotted, points are awarded. Otherwise, the player characterreceives no credit for completing the previous sequence.

FIG. 7 is a map diagram 80 showing, by way of further example,interrelated zones of influence 81-88. As before, each of the zones ofinfluence 81-88 is described by geolocational data to form a logicallyenclosed space. In combination with events stored in the cartridge 13(shown in FIG. 1), the zones of influence 81-88 associate individualevent sequences joined by a common theme, such as playing a game ofgolf.

The zones of influence 81-88 include the golf course zone 81, base zone82, cart track zone 83, tee zone 84, fairway zone 85, sand trap zone 86,green zone 87, and cup zone 88. The golf course zone 81 provides thegeneral environment in which the event sequence operates. The base zone86 contains multiple zones, which each inherit properties from the basezone 82. By way of example, the base zone 82 is the 18^(th) Hole in thegolf course zone 81. The cart track zone 83 forms a zone of influenceseparate from the base zone 82. The cart track zone 83 could be used totrack the flow of traffic through a golf course by creating an eventwhenever a specific golf cart enters the cart track zone 83. The eventwould notify the clubhouse of movement. The tee zone 84 creates anevent, “in play,” which notifies the clubhouse that a user is teeing offfrom the 18^(th) Hole. The event also queries the tee zone 84 to see ifany other player is in play. If so, the event generates an alertindicating that another player is on the hole and instructing the playerto wait until the other player has either moved out of range orcompleted the hole. The fairway zone 85 updates a location parameter to“on fairway” when the player enters the fairway. In addition, an eventis created that presents options on golf clubs to use in relation to thepin and position of the golf ball. The sand trap zone 86 likewisegenerates an event presenting choices of golf clubs, such as a sandwedge, and further indicates the position of the golf ball from the pin.

Entering the green zone 87 triggers a plurality of events. First, a listof golf clubs, such as a choice of putter, can be displayed. As well,distance from the pin and a detailed map of the green can be provided toaid the player on putting. Note that some zone-aware items can triggeradditional events, such as a golf ball tracking system that creates zonetriggers. Finally, the cup zone 88 triggers a zone change when the golfball enters the cup, which is queried to the user.

FIG. 8 is a block diagram showing the functional software components ofa production system 90 for use with the system of FIG. 1. Each componentis a computer program, procedure or process written as source code in aconventional programming language, such as the C++ programming language,and is presented for execution by the CPU as object or byte code, as isknown in the art. The various implementations of the source code andobject and byte codes can be held on a computer-readable storage mediumor embodied on a transmission medium in a carrier wave.

The production system 90 provides a means with which to builduser-customizable cartridges 98 for use with wireless computing devices12 (shown in FIG. 1). The cartridges 98 are generated by a productionserver 91 based on user instructions received from a client 93. Theproduction server 91 includes two components: a toolkit 94 and compiler95. The toolkit 94 is accessed via the client 93 through a standard Webbrowser 97, such as the Internet Explorer or Netscape Navigator. Thetoolkit 94 accesses a production database 92 in which are storedcartridge templates 96, preferably expressed in a page descriptionlanguage, such as the Extensible markup Language (XML), such as furtherdescribed below with reference to FIG. 9.

The toolkit 94 enables a user to define a series of events 99 that aretriggered by temporal, locational and independent conditions and todefine zones of influence (ZOIs) 100 described by geolocational data.Upon the completion of definition, the cartridge templates 96 arecompiled by the compiler 95 into interpretable cartridges 98 fordownloading and execution on a wireless computing device 12 (shown inFIG. 1). Although the production server 91 incorporates components XMLthrough a standard Web browser 97, neither the production server 91, northe took kit 94 and compiler 95 need be made available as Web-basedapplications and could be implemented as standard stand-alone ordistributed applications and other variations, as would be recognized byone skilled in the art.

FIG. 9 is a data structure diagram showing the cartridge template 105utilized by the toolkit of the system of FIG. 8. In the describedembodiment, the cartridge template 105 is written in XML, althoughanother form of tag delineated page description language could be used,as would be recognized by one skilled in the art. The cartridge template105 includes a plurality of tags to identify zones of influence(<zones>), objects (<objects>), and non-player characters (<npcs>). Eachtag for a zone of influence can further define relationships through arelated tag (<related>). In addition, the tag for each mobile device candefine user-specified events (<events>). The events can be generic ordevice-dependent and include multimedia events, including sound, visual,tactile, olfactory, text, and multimedia effects, as well as otheruser-definable messages and communications, such as triggering atelephone call. By way of example, a source code listing for a cartridgeimplementing a generic golf course, such as described above withreference to FIG. 7, written in the XML programming language is includedin the Appendix. Other programming languages or procedural and datastructuring could be employed, as would be recognized by one skilled inthe art.

FIG. 10 is a flow diagram showing a method 110 of executinguser-definable events triggered through geolocational data describingzones of influence, in accordance with the present invention.

The method 110 functions as a continuous control loop (blocks 114-119)executed on a wireless computing device 12 (shown in FIG. 1). Duringeach iteration of the control loop, the status of various aspects of thewireless computing device 12 and cartridge 13 are examined anduser-definable events are executed in an event-driven manner using aqueue.

Preliminarily, a cartridge 13 is downloaded from the centralized server14 (shown in FIG. 1A) (block 111). Optionally, points of interest andother data is downloaded (block 112). Global cartridge settings are thendefined (block 113). The user status and history are checked and updated(block 114), as further described below with reference to FIG. 11. Next,the location status is checked and verified (block 115), as furtherdescribed below with reference to FIG. 12. The status of the cartridge13 is checked and verified (block 116), as further described below withreference to FIG. 13. Queue conditions are checked (block 117), asfurther described below with reference to FIG. 14. Finally, any queuedevent actions are executed (block 118), as further described below withreference to FIG. 15. The control loop (blocks 114-119) continues untilall actions are done (block 119), after which the method terminates.

FIG. 11 is a flow diagram showing a routine 120 for checking andupdating user status and history for use in the method of FIG. 14. Thepurpose of this routine is to maintain historical user informationregarding preferences, attributes and historical movements.

If the user data is new (block 121), the user data stored with thecartridge 13 of the wireless computing device 12 (shown in FIG. 1) isupdated (block 122) to load default preferences, attributes and aninitial position. Thereafter, the current user preferences and devicesettings (block 123), the current user attributes and state (block 124),and the historical movements (block 125) are looked tip. The userpreferences include notifying the user upon entry into a zone ofinfluence, enabling flash feedback, and showing text-only feedbackinstead of graphical feedback. The device settings control color,monochrome, sound, screen size, video capabilities, telephonecapabilities, electronic mail, short messaging service (SMS), paging,and execution of client-side code, such as J2EE scripts. User stateindicates whether the user is in motion, speed, score, game state,movement history (route data), last known position, direction ofmovement, attributes (healthy, sick, sad, happy, and so forth),inventory, spells, characters, and access to a telephone. Historicalmovements are tracked by location, speed, altitude, direction, anddistance. Other types and combinations of user preferences, device,settings, and state are feasible, as would be recognized by one skilledin the art. The routine then returns.

FIG. 12 is a flow diagram showing a routine 130 for checking andverifying a location status for use in the method of FIG. 10. Thepurpose of this routine is to provide a “reality” check on an updateduser movement. Improbable user movements are rejected.

First, GPS signals are received by the wireless computing device 12(block 131) and processed into geolocational data (block 132),preferably in terms of latitudinal and longitudinal values. Thegeolocational data is compared to the historical data (block 133) storedas historical movements in the user data. If the movement is possible(block 134), the user history, current time, location, bearing anddistance are updated (block 135). Otherwise, no update is performed. Inthe described embodiment, a movement is possible if, based on the userdata stored with the cartridge 13 in the wireless computing device 12,the current location can be achieved in the time frame relative to thelocation, speed, altitude, direction and distance from the last update.The routine then returns.

FIG. 13 is a flow diagram showing a routine 140 for checking andverifying a cartridge status and history for use in the method of FIG.10. The purpose of this routine is to update the status of the cartridge13 of the wireless computing device 12 (shown in FIG. 1).

If no cartridge is currently in progress (block 141), a new cartridge isloaded with a virtual world, objects and characters (block 142), afterwhich the routine returns. Otherwise, if a cartridge is in progress(block 141), a world update is requested from the centralized server 14(shown in FIG. 1) (block 143) and world conditions are updated withinthe in-progress cartridge 13 (block 144). Note the world conditionsupdate could also be determined locally on cartridges in progress on anon-wireless computing device running a cartridge autonomously. Theroutine then returns.

Next, the status and locations of global users are requested from thecentralized server 14 (block 145). The status and locations of objectsare requested from the centralized server 14 (block 146). The status andlocations of any non-player characters (NPCs) are requested from thecentralized server 14 (block 147). Finally, the status and areas ofcoverage of the zones of influence 61-64 (shown in FIG. 6) are requestedfrom the centralized server 14 (block 148). The status and location ofthe various users, objects, characters, and zones could be physical orvirtual or a combination thereof. The routine then returns.

FIG. 14 is a flow diagram showing a routine 150 for checking queueconditions for use in the method of FIG. 10. The purpose of this routineis to determine the condition of the queue based on a player action. Thetypes of actions that affect queue conditions include timed events, zoneof influence entries and exits, user-, player character- and non-playercharacter-initiated actions, and proximity actions.

If the current action is a timed event (block 151), a timed event isprocessed (block 152), as further described below with reference to FIG.16. If the action is the entry into a zone of influence 61-64 (shown inFIG. 6) by the user (block 153), a queue action and update is performed(block 154), as further described below with reference to FIG. 17.Similarly, if the user has exited the zone of influence 31-34 (block155), a queue action and update is performed (block 156), as furtherdescribed below with reference to FIG. 17. If the action is auser-initiated action (block 157), a user-initiated event is performed(block 158), as further described below with reference to FIG. 18. Ifthe action is a player-character- or non-player-character-initiatedaction (block 159), a queue action and update is performed (block 160),as further described below with reference to FIG. 17. Finally, if theaction is a proximity action (block 161), a proximity event is performed(block 162), as further described below with reference to FIG. 19. Theroutine then returns.

FIG. 15 is a flow diagram showing a routine 170 for executing queuedactions for use in the method of FIG. 10. The purpose of this routine isto retrieve and execute actions placed in the event queue of thecartridge 13 in the wireless computing device 12 (shown in FIG. 1).

First, the user interface is updated based on user preferences (block171). Next, an event is removed from the queue (block 172). If the eventis a client-side event (block 173), the client-side event is performed(block 174) on the wireless computing device 12. Playing a media clip orsound is an example of a client-side event. Other types of client-sideevents are possible, as would be recognized by one skilled in the art.Otherwise, if the event is an external event (block 175), an eventtrigger is sent (block 176) to the external device, such as a telephoneor similar instrument. Note the event trigger could also be sent to thecentralized server for a team (shown in FIG. 1) to generate othertriggers, such as unlocking a door. Finally, if the event queue is notempty (block 177), processing continues (block 172-176) until the queueis empty (block 177), after which the routine returns.

FIG. 16 is a flow diagram showing a routine 180 for performing a timedevent for use in the routine of FIG. 13. The purpose of this routine isto execute a timed event relative to an internal timer maintained by thecartridge 13 in the wireless computing device 12 (shown in FIG. 1).

First, if the timed event is a timed global condition (block 181), aqueue action and update is performed (block 182), as further describedbelow with reference to FIG. 16. Similarly, if the event is a timed zonecondition (block 183), timed non-player character condition (block 185),timed user condition (block 187), or timed object condition (block 189),a queue action update is likewise performed (blocks 184, 186, 188, and190, respectively), as further described below with reference to FIG.17. The routine then returns.

FIG. 17 is a flow diagram for performing a queue action 205 and updatefor use in the routines of FIGS. 13, 14, 15, and 169. The purpose ofthis routine is to place event actions into the queue of the cartridge13 in the wireless computing device 12 (shown in FIG. 1).

First, the action is requested from the cartridge 13 (block 206) andprioritized (block 207). In the described embodiment, actions are sortedand enqueued to prioritize the actions. Next, any media is loaded (block208), for instance, a sound file is retrieved to play a sound effect.Finally, the user status and history are checked and updated (block209), as further described above with reference to FIG. 13. The routinethen returns.

FIG. 18 is a flow diagram showing a routine 210 for performing auser-initiated event for use in the routine of FIG. 14. The purpose ofthis routine is to identify and enqueue a user-initiated event.

If the user-initiated event interacts with the world (block 211), aqueue action and update is performed (block 212), as further describedabove with reference to FIG. 16. Similarly, if the user-initiated eventinteracts with a zone of influence 61-64 (shown in FIG. 6) (block 213),with the user (block 215), with a player character or non-playercharacter (block 217), or with an object, (block 219), a queue actionand update is performed (blocks 214, 216, 218, and 220, respectively),as further described above with reference to FIG. 16. The routine thenreturns.

FIG. 19 is a flow diagram showing a routine 230 for performing aproximity event for use in the routine of FIG. 14. The purpose of thisroutine is to identify and execute a proximity event.

First, if the proximity event is relative to a zone of influence 31-34(shown in FIG. 2) (block 231), a queue action and update is performed(block 232), as further described above with reference to FIG. 16.Similarly, if the proximity event is relative to a player character ornon-player character (block 233), or an object (block 235), a queueaction and update is performed (blocks 234 and 236, respectively), asfurther described above with reference to FIG. 16. The routine thenreturns.

While the invention has been particularly shown and described asreferenced to the embodiments thereof, those skilled in the art willunderstand that the foregoing and other changes in form and detail maybe made therein without departing from the spirit and scope of theinvention.

FIG. 20 is a flow diagram showing a routine 240 for defining globalcartridge settings for use in the method of FIG. 8. The purpose of thisroutine is to specify a collection of zones of influence, items, events,and non-character players, which collectively provide a user experiencein the physical world using geolocational data.

First, zones of influence are defined (block 241), as further describedbelow with reference to FIG. 21. Items are defined (block 242), asfurther described below with reference to FIG. 22. Events are defined(block 243), as further described below with reference to FIG. 23.Non-player characters (NPCs) are defined (block 244), as furtherdescribed below with reference to FIG. 24. Cartridge initializationsettings are defined (block 245), as further described below withreference to FIG. 25. Finally, the cartridge 13 (shown in FIG. 1A) iscompiled (block 246) into program code interpretable by the wirelesscomputing device 12. The routine then returns.

FIG. 21 is a flow diagram showing the routine 250 for defining zones ofinfluence for use in the routine of FIG. 20. The purpose of this routineis to specify zone geolocational data and to associate events withzones.

First, the dimensions of each zone of influence are defined (block 251),as further described below with reference to FIG. 26. The zoneattributes are then defined (block 252). The attributes includeinitialization and state settings and relationships to other zones ofinfluence. For instance, if the present zone of influence inherits froma parent zone, the attributes for the parent zone of influence arecopied. Next, any events which occur conditionally with respect to thezone of influence are defined (block 253).

In addition, events defining interactions between zones of influence aredefined (block 254). Interaction events carry over between successivezones of influence to provide a continuous storyline. Finally, theinitialization settings for the zone of influence are defined (block255), after which the routine returns.

FIG. 22 is a flow diagram showing the routine 260 for defining items ofinfluence for use in the routine of FIG. 20. The purpose of this routineis to specify virtual or physical objects, which can be manipulatedthrough the various events associated with the zones of influence.

First, attributes for each item are defined (block 261). Item attributesinclude both logical and physical characteristics, such as color, sizeand description. The interaction between the items and events are thendefined (block 262). Similarly, events which are conditioned on an itemare defined (block 264). Finally, item initialization settings aredefined (block 264), after which the routine returns.

FIG. 23 is a flow diagram showing the routine 270 for defining eventsfor use in the routine of FIG. 20. The purpose of this routine is tospecify time-based triggers, which occur programmatically within acartridge.

First, trigger attributes are defined (block 281). The triggerattributes include properties specific to the type of trigger defined,such as tinier values or exact times. Next, trigger conditions aredefined (block 272), such as conditions which exist at certain timeintervals or exact times. Similarly, timed and conditionally timedevents are defined (block 273). Finally, event initialization'ssettings, such as for recurring events, are defined (block 274). Theroutine returns.

FIG. 24 is a flow diagram showing the routine 280 for definingnon-player characters for use in the routine of FIG. 20. The purpose ofthis routine is to create a fictional nor-participative character withwhom a player character can interact through query and responsebehaviors.

First, the attributes of the non-player characters are defined (block281). These attributes are similar to those defined for a playercharacter with the addition of cartridge-specific characteristics.Interactions between the non-player characters and events are thendefined (block 282). Similarly, events conditioned on the non-playercharacters are defined (block 283). Finally, non-player characterinitialization settings are defined (block 284), after which the routinereturns.

FIG. 25 is a flow diagram showing the routine 290 for defining cartridgeinitialization settings for use in the routine of FIG. 20. The purposeof this routine is to specify the initial values for the variouscharacteristics for a cartridge storing a sequence of events for a setof zones of influence.

First, the base level attributes for the cartridge upon initializationare defined (block 291). The zones of influence, items, non-playercharacters, and global events present at initialization are defined(block 292). Lastly, the player character attributes at initializationfor the current player are defined (block 293). The routine thenreturns.

FIG. 26 is a flow diagram showing the routine 300 for defining zoneinformation for use in the routine of FIG. 21. The purpose of thisroutine is to specify the geolocational data for a zone of influence.

First, a zone of influence type is defined (block 301). As describedabove with reference to FIGS. 2A-B, 3A-B, 4, and 5A-B, zones ofinfluence can be two- or three-dimensional and be defined by vector orradius values, or combinations thereof. Next, vector data specifying thezone of influence dimensions are defined (block 302). Finally, thehierarchy for the zone, that is, level, is defined (block 303), ifapplicable. The routine then returns.

While the invention has been particularly shown and described asreferenced to the embodiments thereof, those skilled in the art willunderstand that the foregoing and other changes in form and detail maybe made therein without departing from the spirit and scope of theinvention. APPENDIX <cartridge version =“0.1b” company=“Groundspeak”name=“Generic Golf Course”> (...Define Global zone properties) <zones><zone id=200 layer=“+3”> <name>Hole 18: Green (Radial ZoneExample)</name> <description>You're on the Green!</description><shape=“radial” dimension=2 measurement=“km”> .015</shape> <vectorsdatum= “WGS84”> <point id=1 lat=47.655 lon=−122.001 altitutde=300></vectors> <on_enter> <trigger_event desc=“Entering Hole 18Green”>64</trigger_event> <pc_set attribute=“position” recurring=true>Entered the Green</pc set> <set_score recurring=false>+20</set_score></on_enter> <on_exit> <trigger_event desc=“Leaving Hole 18Green”>123</trigger_event> <pc_set attribute= “position”recurring=true>Left the Green</pc_set> </on_exit> <proximitymeasurement=“m” distance=5 desc=“Close to the Green”><trigger_event >222</trigger event> </proximity> </zone> <zone id=200layer=“+3”> <name>Hole 18: Sand Trap (Vector Zone Example)</name><description>You are in the sand trap. Good luck!</description><shape=“vector” dimension=2 /> <vectors datum= “WGS84”> <point id=1lat=47.XXX lon=−122.XXX/> <point id=2 lat=47.XXX lon=−122.XXX/> ...</point id=450 lat=47.XXX lon=−122.XXX/> </vectors> <on_enter><trigger_event desc=“Entering Hole 18 Sand Trap”>164</trigger_event><pc_set_attribute=“position” recurring=true>In the Sand Trap</pc_set><set_score recurring=true>−5</set score> </on_enter> <on_exit><trigger_event desc=“Leaving Hole 18 Green>123</trigger_event><pc_set_attribute=“position” recurring=true>Outside Sand Trap</pc_set></on_exit> <proximity measurement=“m” distance=5 desc=“Danger! Near SandTrap”> <trigger_event>232</trigger event> </proximity> </zone> <items><item id=12> <short_name>a Golf Ball<short_name> >long_name>a brand newgolf ball</long_name> <description>It looks like your typical golfball</description> <action_command=“crush”> <destroy_item id=12/></action> </item> </items> <npcs> <npc id=32> <short_name>Charles theCaddy<short_name> <action command=“recommend”> ...trigger some action</action> <topics> <topic name=“Golf”> <topic /> </topic> <topics></npc> </npcs> <events> <event id=64 type=“execute/recurringltime”><conditions> </triggers> </conditions> <triggers> <set_attributes /><play_media/> </triggers > </event> </events> <initialization><create_zone id=200/> <create_item id=12 lat=47.675 lon=−122.123/><create_npc id=32 lat=47.678 lon=−122.234/> <set_score>0</set_score></initialization> </cartridge>

1. A method for executing user events on a mobile user device, themethod comprising: accessing data in a cartridge script loaded into amemory of a mobile user device, wherein the data comprises one or morezones of influence, which each describe a plurality of points of staticgeolocational data, and one or more user events, which are eachassociated with at least one zone of influence; and executing a scenarioby triggering the user events stored on the cartridge script throughmovement of the mobile user device, the executing comprising:continuously self-identifying a location dynamically determined inresponse to the movement; determining a positional overlap between thelocation and the static geolocational data for one or more of the zonesof influence; and locally triggering the user event associated with thezones of influence based on the positional overlap.
 2. A methodaccording to claim 1, wherein the data further comprises one or morelimed events, which are each associated with at least one user event,the method further comprising: further executing the scenario bytriggering the one or more of the user events through passage of time,the further executing comprising: identifying the time events havingexpired times based on time that has elapsed; and locally triggering theuser event associated with the timed events based on the expired times.3. A method according to claim 1, wherein the data further comprises oneor more independent trigger conditions, the method further comprising:further executing the scenario by triggering the one or more of theindependent trigger conditions through independent conditions, thefurther executing comprising: determining satisfaction of one or more ofthe independent trigger conditions; and locally triggering the userevent associated with the independent trigger conditions based on thesatisfaction.
 4. A method according to claim 1, the method furthercomprising: locally triggering user or more of the user events upon atleast one of an entry into or exit from the zone of influence associatedwith the user events.
 5. A method for executing user navigational eventstriggered through geolocational data describing zones of influence, themethod comprising: storing data in a cartridge script loadable into auser device, the storing comprising: defining one or more zones ofinfluence into the cartridge script by describing by a plurality ofpoints of static geolocational data; defining one or more usernavigational events into the cartridge script and associating each usernavigational event with at least one zone of influence; specifying atrigger condition for each user navigational event based on the staticgeolocational data for the associated zone of influence; and executing ascenario by triggering the user navigational events stored on thecartridge script through movement of the user device, the executingcomprising: continuously self-identifying a location of the user devicebased on dynamic geolocational data determined in response to themovement; determining a correlation between the dynamic geolocationaldata and the static geolocational data for one or more of the zones ofinfluence; and locally triggering the user navigational event associatedwith the trigger condition of the zones of influence based on thecorrelation.
 6. A method according to claim 5, the method furthercomprising: further storing data in the cartridge script loaded in theuser device, the further storing comprising: specifying one or moretimed events comprising a start time and a duration and associating eachtimed event with at least one user navigational event; and furtherexecuting the scenario by triggering the user navigational events storedon the cartridge script through passage of time, the further executingcomprising: measuring an elapsed time beginning with the start time ofeach timed event; determining an expiration when the elapsed timesubstantially equals the duration of one or more of the timed events;and locally triggering each user navigational event associated with theduration of the timed events based on the expiration.
 7. A methodaccording to claim 5, the method further comprising: further storingdata in the cartridge script loaded in the user device, the furtherstoring comprising: specifying one or more independent triggerconditions and associating each independent trigger condition with atleast one user navigational event; and further executing the scenario bytriggering the user navigational events stored on the cartridge scriptthrough independent conditions, the further executing comprising:determining trigger condition satisfaction of one or more of theindependent trigger conditions; and locally triggering each usernavigational event associated with the independent trigger conditionsbased on the trigger condition satisfaction.
 8. A method according toclaim 5, the method further comprising: locally triggering one or moreof the user navigational events upon at least one of an entry into orexit from the zone of influence associated with the user navigationalevents.
 9. A method according to claim 5, the method further comprising:defining each zone of influence as at least one of a two-dimensional anda three-dimensional enclosed space.
 10. A method according to claim 5,the method further comprising: defining each zone of influence asdiscrete, adjoining, overlapping, and nested relative to at least oneother zone of influence.
 11. A method according to claim 5, the methodfurther comprising: defining at least one zone of influence asinheriting at least one user navigational event from one or more otherof the zones of influence.
 12. A method according to claim 5, the methodfurther comprising: defining one or more points of interest for at leastone of the user navigational events and comprising information; andproviding the information regarding the points of interest for eachnavigational event locally triggered.
 13. A method according to claim13, wherein the information comprises at least one of a sound effect,visual effect, tactile effect, olfactory effect, text effect, andmultimedia display.
 14. A method for executing zones of influences thatdescribe geolocational data triggered through user navigational events,the method comprising: storing data in a cartridge script loadable intoa user device, the storing comprising: defining one or more usernavigational events into the cartridge script; defining one or morezones of influence into the cartridge script by describing by aplurality of points of static geolocational data and associating eachzone of influence with at least one user navigational event; specifyinga trigger condition for each zone of influence for the associated usernavigational event; and executing a scenario by triggering the zones ofinfluence stored on the cartridge script through user events, theexecuting comprising: determining event satisfaction of one or more ofthe user navigational events; and locally triggering each zone ofinfluence associated with the user navigational events based on theevent satisfaction.
 15. A method according to claim 14, the methodfurther comprising: further storing data in the cartridge script loadedin the user device, the further storing comprising: specifying one ormore timed events comprising a start time and a duration and associatingeach timed event with at least one zone of influence; and furtherexecuting the scenario by triggering the zones of influence stored onthe cartridge script through passage of time, the further executingcomprising: measuring an elapsed time beginning with the start time ofeach timed event; determining an expiration when the elapsed timesubstantially equals the duration of one or more of the timed events;and locally triggering each zones of influence associated with theduration of the timed events based on the expiration.
 16. A methodaccording to claim 14, the method further comprising: further storingdata in the cartridge script loaded in the user device, the furtherstoring comprising: specifying one or more independent triggerconditions and associating each independent trigger condition with atleast one zones of influence; and further executing the scenario bytriggering the zones of influence stored on the cartridge script throughindependent conditions, the further executing comprising: determiningtrigger condition satisfaction of one or more of the independent triggerconditions; and locally triggering each zone of influence associatedwith the independent trigger conditions based on the trigger conditionsatisfaction.
 17. A method according to claim 14, the method furthercomprising: locally triggering one or more of the zones of influenceupon at least one of an entry into or exit from the zone of influence.18. A method according to claim 14, the method further comprising:defining each zone of influence as at least one of a two-dimensional anda three-dimensional enclosed space.
 19. A method according to claim 14,the method further comprising: defining each zone of influence asdiscrete, adjoining, overlapping, and nested relative to at least oneother zone of influence.
 20. A method according to claim 14, the methodfurther comprising: defining at least one zone of influence asinheriting at least one user navigational event from one or more otherof the zones of influence.
 21. A method according to claim 14, themethod further comprising: defining one or more points of interest forat least one of the user navigational events and comprising information;and providing the information regarding the points of interest for eachnavigational event locally triggered.
 22. A method according to claim21, wherein the information comprises at least one of a sound effect,visual effect, tactile effect, olfactory effect, text effect, andmultimedia display.